package com.stu.day13.listsort;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

/**
 * @author zy
 * @date 2025/2/11 19:07
 */
public class ListSortDemo3 {
    public static void main(String[] args) {
        Order2 o1 = new Order2(1,"1001",100.0d);
        Order2 o2 = new Order2(2,"1002",200.0d);
        Order2 o3 = new Order2(3,"1003",100.0d);
        Order2 o4 = new Order2(4,"1004",400.0d);
        Order2 o5 = new Order2(5,"1005",500.0d);

        List<Order2> list = new ArrayList<>();
        list.add(o1);
        list.add(o2);
        list.add(o3);
        list.add(o4);
        list.add(o5);

        //TODO 可以考虑将排序的规则进行封装 - 简单工厂方法设计模式
        //TODO 根据指定的参数来返回具体的某个实例,将对象的创建和对象的使用进行分离
        //TODO 根据排序规则的参数来返回某个具体的比较器对象
        Comparator<Order2> c = OrderSortFactory.getInstance(OrderSortFactory.ORD_NO);
        list.sort(c);

        for (Order2 order : list) {
            System.out.println(order);
        }
    }
}
